/* это объединение займет 4 байта в SRAM,
   как битовая область данных типа
   unsigned long (длинное без знака) */

union union_long
{
unsigned long x:8; 	// Переменная x займет биты с 0 по 7
unsigned long y:10; 	// Переменная y займет биты с 0 по 9
unsigned long z:8; 	// Переменная z займет биты с 0 по 7
// Биты с 10 по 31 не используются
};

/* это объединение займет 2 байта в SRAM,
   как битовая область данных типа
   unsigned int (целое без знака) */

union union_int
{
unsigned int x:6; 	// Переменная x займет биты с 0 по 5
unsigned int y:8; 	// Переменная y займет биты с 0 по 7
unsigned int z:2; 	// Переменная z займет биты с 0 по 1
// Биты с 8 по 15 не используются
};

/* это объединение займет 1 байт в SRAM,
   как битовая область данных типа
   unsigned char (символьное без знака) */

union union_char
{
unsigned char x:2; 	// Переменная x займет биты с 0 по 1
unsigned char y:4; 	// Переменная y займет биты со 0 по 3
unsigned char z:1; 	// Переменная z займет бит 0
// Биты с 4 по 7 не используются
};
